package com.jianan.mis.data.domain.base;

import java.io.Serializable;


/**
 * This is an object that contains data related to the os_consultation table.
 * Do not modify this class because it will be overwritten if the configuration file
 * related to this class is modified.
 *
 * @hibernate.class
 *  table="os_consultation"
 */

public abstract class BaseOsConsultation  implements Serializable {

	public static String REF = "OsConsultation";
	public static String PROP_PHONE = "Phone";
	public static String PROP_START_SCHOOL_TIME = "StartSchoolTime";
	public static String PROP_QUALITY = "Quality";
	public static String PROP_LANG_EXAM_TYPE1 = "LangExamType1";
	public static String PROP_LANG_EXAM_TYPE2 = "LangExamType2";
	public static String PROP_COUNTRY_INTENT3 = "CountryIntent3";
	public static String PROP_STOCK_FUND = "StockFund";
	public static String PROP_OS_DIRECTION = "OsDirection";
	public static String PROP_COUNTRY_INTENT2 = "CountryIntent2";
	public static String PROP_SCHOOL_CONDITION = "SchoolCondition";
	public static String PROP_CREATE_DATE = "CreateDate";
	public static String PROP_LANG_EXAM_TYPE3 = "LangExamType3";
	public static String PROP_INTENT1 = "Intent1";
	public static String PROP_BIRTHDAY = "Birthday";
	public static String PROP_INTENT3 = "Intent3";
	public static String PROP_INTENT2 = "Intent2";
	public static String PROP_GRADE = "Grade";
	public static String PROP_HOUSE = "House";
	public static String PROP_MOBILE_PHONE = "MobilePhone";
	public static String PROP_MAIL = "Mail";
	public static String PROP_OTHER_ASSET = "OtherAsset";
	public static String PROP_INTERMAN = "Interman";
	public static String PROP_PARENTS_JOB = "ParentsJob";
	public static String PROP_SEX = "Sex";
	public static String PROP_GRADUATE_SCHOOL = "GraduateSchool";
	public static String PROP_LANG_EXAM_GRADE1 = "LangExamGrade1";
	public static String PROP_SPECIALITY = "Speciality";
	public static String PROP_EDU_LEVEL = "EduLevel";
	public static String PROP_COUNTRY_INTENT = "CountryIntent";
	public static String PROP_LANG_EXAM_GRADE2 = "LangExamGrade2";
	public static String PROP_LANG_EXAM_GRADE3 = "LangExamGrade3";
	public static String PROP_NAME = "Name";
	public static String PROP_SOURCE = "Source";
	public static String PROP_COUNTRY_INTENT1 = "CountryIntent1";
	public static String PROP_GRADUATE_TIME = "GraduateTime";
	public static String PROP_STATE = "State";
	public static String PROP_SAVING = "Saving";
	public static String PROP_CONSULTANT = "Consultant";
	public static String PROP_ID = "Id";
	public static String PROP_UPDATE_DATE = "UpdateDate";
	public static String PROP_REMARK = "Remark";


	// constructors
	public BaseOsConsultation () {
		initialize();
	}

	/**
	 * Constructor for primary key
	 */
	public BaseOsConsultation (java.lang.Integer id) {
		this.setId(id);
		initialize();
	}

	/**
	 * Constructor for required fields
	 */
	public BaseOsConsultation (
		java.lang.Integer id,
		com.jianan.mis.data.domain.Country countryIntent,
		java.lang.String name,
		boolean sex,
		java.util.Date birthday,
		java.lang.String eduLevel,
		java.lang.String schoolCondition,
		java.lang.String osDirection,
		java.lang.String source,
		java.lang.String parentsJob,
		java.lang.String saving,
		java.lang.String stockFund,
		java.lang.String house,
		java.util.Date createDate,
		java.util.Date updateDate,
		java.lang.Integer state) {

		this.setId(id);
		this.setCountryIntent(countryIntent);
		this.setName(name);
		this.setSex(sex);
		this.setBirthday(birthday);
		this.setEduLevel(eduLevel);
		this.setSchoolCondition(schoolCondition);
		this.setOsDirection(osDirection);
		this.setSource(source);
		this.setParentsJob(parentsJob);
		this.setSaving(saving);
		this.setStockFund(stockFund);
		this.setHouse(house);
		this.setCreateDate(createDate);
		this.setUpdateDate(updateDate);
		this.setState(state);
		initialize();
	}

	protected void initialize () {}



	private int hashCode = Integer.MIN_VALUE;

	// primary key
	private java.lang.Integer id;

	// fields
	private java.lang.String name;
	private boolean sex;
	private java.util.Date birthday;
	private java.lang.String eduLevel;
	private java.lang.String speciality;
	private java.util.Date startSchoolTime;
	private java.lang.String schoolCondition;
	private java.util.Date graduateTime;
	private java.lang.String graduateSchool;
	private java.math.BigDecimal grade;
	private java.lang.String phone;
	private java.lang.String mail;
	private java.lang.String osDirection;
	private java.lang.String source;
	private java.lang.String remark;
	private java.lang.String parentsJob;
	private java.lang.String langExamType1;
	private java.math.BigDecimal langExamGrade1;
	private java.lang.String langExamType2;
	private java.math.BigDecimal langExamGrade2;
	private java.lang.String langExamType3;
	private java.math.BigDecimal langExamGrade3;
	private java.lang.String intent1;
	private java.lang.String intent2;
	private java.lang.String intent3;
	private java.lang.String mobilePhone;
	private java.lang.String saving;
	private java.lang.String stockFund;
	private java.lang.String house;
	private java.lang.String otherAsset;
	private java.util.Date createDate;
	private java.util.Date updateDate;
	private java.lang.Integer state;
	private java.lang.String quality;

	// many to one
	private com.jianan.mis.data.domain.Country countryIntent;
	private com.jianan.mis.data.domain.Employee consultant;
	private com.jianan.mis.data.domain.Country countryIntent1;
	private com.jianan.mis.data.domain.Country countryIntent2;
	private com.jianan.mis.data.domain.Interman interman;
	private com.jianan.mis.data.domain.Country countryIntent3;



	/**
	 * Return the unique identifier of this class
     * @hibernate.id
     *  generator-class="native"
     *  column="id"
     */
	public java.lang.Integer getId () {
		return id;
	}

	/**
	 * Set the unique identifier of this class
	 * @param id the new ID
	 */
	public void setId (java.lang.Integer id) {
		this.id = id;
		this.hashCode = Integer.MIN_VALUE;
	}




	/**
	 * Return the value associated with the column: name
	 */
	public java.lang.String getName () {
		return name;
	}

	/**
	 * Set the value related to the column: name
	 * @param name the name value
	 */
	public void setName (java.lang.String name) {
		this.name = name;
	}



	/**
	 * Return the value associated with the column: sex
	 */
	public boolean isSex () {
		return sex;
	}

	/**
	 * Set the value related to the column: sex
	 * @param sex the sex value
	 */
	public void setSex (boolean sex) {
		this.sex = sex;
	}



	/**
	 * Return the value associated with the column: birthday
	 */
	public java.util.Date getBirthday () {
		return birthday;
	}

	/**
	 * Set the value related to the column: birthday
	 * @param birthday the birthday value
	 */
	public void setBirthday (java.util.Date birthday) {
		this.birthday = birthday;
	}



	/**
	 * Return the value associated with the column: edu_level
	 */
	public java.lang.String getEduLevel () {
		return eduLevel;
	}

	/**
	 * Set the value related to the column: edu_level
	 * @param eduLevel the edu_level value
	 */
	public void setEduLevel (java.lang.String eduLevel) {
		this.eduLevel = eduLevel;
	}



	/**
	 * Return the value associated with the column: speciality
	 */
	public java.lang.String getSpeciality () {
		return speciality;
	}

	/**
	 * Set the value related to the column: speciality
	 * @param speciality the speciality value
	 */
	public void setSpeciality (java.lang.String speciality) {
		this.speciality = speciality;
	}



	/**
	 * Return the value associated with the column: start_school_time
	 */
	public java.util.Date getStartSchoolTime () {
		return startSchoolTime;
	}

	/**
	 * Set the value related to the column: start_school_time
	 * @param startSchoolTime the start_school_time value
	 */
	public void setStartSchoolTime (java.util.Date startSchoolTime) {
		this.startSchoolTime = startSchoolTime;
	}



	/**
	 * Return the value associated with the column: school_condition
	 */
	public java.lang.String getSchoolCondition () {
		return schoolCondition;
	}

	/**
	 * Set the value related to the column: school_condition
	 * @param schoolCondition the school_condition value
	 */
	public void setSchoolCondition (java.lang.String schoolCondition) {
		this.schoolCondition = schoolCondition;
	}



	/**
	 * Return the value associated with the column: graduate_time
	 */
	public java.util.Date getGraduateTime () {
		return graduateTime;
	}

	/**
	 * Set the value related to the column: graduate_time
	 * @param graduateTime the graduate_time value
	 */
	public void setGraduateTime (java.util.Date graduateTime) {
		this.graduateTime = graduateTime;
	}



	/**
	 * Return the value associated with the column: graduate_school
	 */
	public java.lang.String getGraduateSchool () {
		return graduateSchool;
	}

	/**
	 * Set the value related to the column: graduate_school
	 * @param graduateSchool the graduate_school value
	 */
	public void setGraduateSchool (java.lang.String graduateSchool) {
		this.graduateSchool = graduateSchool;
	}



	/**
	 * Return the value associated with the column: grade
	 */
	public java.math.BigDecimal getGrade () {
		return grade;
	}

	/**
	 * Set the value related to the column: grade
	 * @param grade the grade value
	 */
	public void setGrade (java.math.BigDecimal grade) {
		this.grade = grade;
	}



	/**
	 * Return the value associated with the column: phone
	 */
	public java.lang.String getPhone () {
		return phone;
	}

	/**
	 * Set the value related to the column: phone
	 * @param phone the phone value
	 */
	public void setPhone (java.lang.String phone) {
		this.phone = phone;
	}



	/**
	 * Return the value associated with the column: mail
	 */
	public java.lang.String getMail () {
		return mail;
	}

	/**
	 * Set the value related to the column: mail
	 * @param mail the mail value
	 */
	public void setMail (java.lang.String mail) {
		this.mail = mail;
	}



	/**
	 * Return the value associated with the column: os_direction
	 */
	public java.lang.String getOsDirection () {
		return osDirection;
	}

	/**
	 * Set the value related to the column: os_direction
	 * @param osDirection the os_direction value
	 */
	public void setOsDirection (java.lang.String osDirection) {
		this.osDirection = osDirection;
	}



	/**
	 * Return the value associated with the column: source
	 */
	public java.lang.String getSource () {
		return source;
	}

	/**
	 * Set the value related to the column: source
	 * @param source the source value
	 */
	public void setSource (java.lang.String source) {
		this.source = source;
	}



	/**
	 * Return the value associated with the column: remark
	 */
	public java.lang.String getRemark () {
		return remark;
	}

	/**
	 * Set the value related to the column: remark
	 * @param remark the remark value
	 */
	public void setRemark (java.lang.String remark) {
		this.remark = remark;
	}



	/**
	 * Return the value associated with the column: parents_job
	 */
	public java.lang.String getParentsJob () {
		return parentsJob;
	}

	/**
	 * Set the value related to the column: parents_job
	 * @param parentsJob the parents_job value
	 */
	public void setParentsJob (java.lang.String parentsJob) {
		this.parentsJob = parentsJob;
	}



	/**
	 * Return the value associated with the column: lang_exam_type1
	 */
	public java.lang.String getLangExamType1 () {
		return langExamType1;
	}

	/**
	 * Set the value related to the column: lang_exam_type1
	 * @param langExamType1 the lang_exam_type1 value
	 */
	public void setLangExamType1 (java.lang.String langExamType1) {
		this.langExamType1 = langExamType1;
	}



	/**
	 * Return the value associated with the column: lang_exam_grade1
	 */
	public java.math.BigDecimal getLangExamGrade1 () {
		return langExamGrade1;
	}

	/**
	 * Set the value related to the column: lang_exam_grade1
	 * @param langExamGrade1 the lang_exam_grade1 value
	 */
	public void setLangExamGrade1 (java.math.BigDecimal langExamGrade1) {
		this.langExamGrade1 = langExamGrade1;
	}



	/**
	 * Return the value associated with the column: lang_exam_type2
	 */
	public java.lang.String getLangExamType2 () {
		return langExamType2;
	}

	/**
	 * Set the value related to the column: lang_exam_type2
	 * @param langExamType2 the lang_exam_type2 value
	 */
	public void setLangExamType2 (java.lang.String langExamType2) {
		this.langExamType2 = langExamType2;
	}



	/**
	 * Return the value associated with the column: lang_exam_grade2
	 */
	public java.math.BigDecimal getLangExamGrade2 () {
		return langExamGrade2;
	}

	/**
	 * Set the value related to the column: lang_exam_grade2
	 * @param langExamGrade2 the lang_exam_grade2 value
	 */
	public void setLangExamGrade2 (java.math.BigDecimal langExamGrade2) {
		this.langExamGrade2 = langExamGrade2;
	}



	/**
	 * Return the value associated with the column: lang_exam_type3
	 */
	public java.lang.String getLangExamType3 () {
		return langExamType3;
	}

	/**
	 * Set the value related to the column: lang_exam_type3
	 * @param langExamType3 the lang_exam_type3 value
	 */
	public void setLangExamType3 (java.lang.String langExamType3) {
		this.langExamType3 = langExamType3;
	}



	/**
	 * Return the value associated with the column: lang_exam_grade3
	 */
	public java.math.BigDecimal getLangExamGrade3 () {
		return langExamGrade3;
	}

	/**
	 * Set the value related to the column: lang_exam_grade3
	 * @param langExamGrade3 the lang_exam_grade3 value
	 */
	public void setLangExamGrade3 (java.math.BigDecimal langExamGrade3) {
		this.langExamGrade3 = langExamGrade3;
	}



	/**
	 * Return the value associated with the column: intent1
	 */
	public java.lang.String getIntent1 () {
		return intent1;
	}

	/**
	 * Set the value related to the column: intent1
	 * @param intent1 the intent1 value
	 */
	public void setIntent1 (java.lang.String intent1) {
		this.intent1 = intent1;
	}



	/**
	 * Return the value associated with the column: intent2
	 */
	public java.lang.String getIntent2 () {
		return intent2;
	}

	/**
	 * Set the value related to the column: intent2
	 * @param intent2 the intent2 value
	 */
	public void setIntent2 (java.lang.String intent2) {
		this.intent2 = intent2;
	}



	/**
	 * Return the value associated with the column: intent3
	 */
	public java.lang.String getIntent3 () {
		return intent3;
	}

	/**
	 * Set the value related to the column: intent3
	 * @param intent3 the intent3 value
	 */
	public void setIntent3 (java.lang.String intent3) {
		this.intent3 = intent3;
	}



	/**
	 * Return the value associated with the column: mobile_phone
	 */
	public java.lang.String getMobilePhone () {
		return mobilePhone;
	}

	/**
	 * Set the value related to the column: mobile_phone
	 * @param mobilePhone the mobile_phone value
	 */
	public void setMobilePhone (java.lang.String mobilePhone) {
		this.mobilePhone = mobilePhone;
	}



	/**
	 * Return the value associated with the column: saving
	 */
	public java.lang.String getSaving () {
		return saving;
	}

	/**
	 * Set the value related to the column: saving
	 * @param saving the saving value
	 */
	public void setSaving (java.lang.String saving) {
		this.saving = saving;
	}



	/**
	 * Return the value associated with the column: stock_fund
	 */
	public java.lang.String getStockFund () {
		return stockFund;
	}

	/**
	 * Set the value related to the column: stock_fund
	 * @param stockFund the stock_fund value
	 */
	public void setStockFund (java.lang.String stockFund) {
		this.stockFund = stockFund;
	}



	/**
	 * Return the value associated with the column: house
	 */
	public java.lang.String getHouse () {
		return house;
	}

	/**
	 * Set the value related to the column: house
	 * @param house the house value
	 */
	public void setHouse (java.lang.String house) {
		this.house = house;
	}



	/**
	 * Return the value associated with the column: other_asset
	 */
	public java.lang.String getOtherAsset () {
		return otherAsset;
	}

	/**
	 * Set the value related to the column: other_asset
	 * @param otherAsset the other_asset value
	 */
	public void setOtherAsset (java.lang.String otherAsset) {
		this.otherAsset = otherAsset;
	}



	/**
	 * Return the value associated with the column: create_date
	 */
	public java.util.Date getCreateDate () {
		return createDate;
	}

	/**
	 * Set the value related to the column: create_date
	 * @param createDate the create_date value
	 */
	public void setCreateDate (java.util.Date createDate) {
		this.createDate = createDate;
	}



	/**
	 * Return the value associated with the column: update_date
	 */
	public java.util.Date getUpdateDate () {
		return updateDate;
	}

	/**
	 * Set the value related to the column: update_date
	 * @param updateDate the update_date value
	 */
	public void setUpdateDate (java.util.Date updateDate) {
		this.updateDate = updateDate;
	}



	/**
	 * Return the value associated with the column: state
	 */
	public java.lang.Integer getState () {
		return state;
	}

	/**
	 * Set the value related to the column: state
	 * @param state the state value
	 */
	public void setState (java.lang.Integer state) {
		this.state = state;
	}



	/**
	 * Return the value associated with the column: quality
	 */
	public java.lang.String getQuality () {
		return quality;
	}

	/**
	 * Set the value related to the column: quality
	 * @param quality the quality value
	 */
	public void setQuality (java.lang.String quality) {
		this.quality = quality;
	}



	/**
	 * Return the value associated with the column: country_intent
	 */
	public com.jianan.mis.data.domain.Country getCountryIntent () {
		return countryIntent;
	}

	/**
	 * Set the value related to the column: country_intent
	 * @param countryIntent the country_intent value
	 */
	public void setCountryIntent (com.jianan.mis.data.domain.Country countryIntent) {
		this.countryIntent = countryIntent;
	}



	/**
	 * Return the value associated with the column: consultant_id
	 */
	public com.jianan.mis.data.domain.Employee getConsultant () {
		return consultant;
	}

	/**
	 * Set the value related to the column: consultant_id
	 * @param consultant the consultant_id value
	 */
	public void setConsultant (com.jianan.mis.data.domain.Employee consultant) {
		this.consultant = consultant;
	}



	/**
	 * Return the value associated with the column: country_intent1
	 */
	public com.jianan.mis.data.domain.Country getCountryIntent1 () {
		return countryIntent1;
	}

	/**
	 * Set the value related to the column: country_intent1
	 * @param countryIntent1 the country_intent1 value
	 */
	public void setCountryIntent1 (com.jianan.mis.data.domain.Country countryIntent1) {
		this.countryIntent1 = countryIntent1;
	}



	/**
	 * Return the value associated with the column: country_intent2
	 */
	public com.jianan.mis.data.domain.Country getCountryIntent2 () {
		return countryIntent2;
	}

	/**
	 * Set the value related to the column: country_intent2
	 * @param countryIntent2 the country_intent2 value
	 */
	public void setCountryIntent2 (com.jianan.mis.data.domain.Country countryIntent2) {
		this.countryIntent2 = countryIntent2;
	}



	/**
	 * Return the value associated with the column: interman_id
	 */
	public com.jianan.mis.data.domain.Interman getInterman () {
		return interman;
	}

	/**
	 * Set the value related to the column: interman_id
	 * @param interman the interman_id value
	 */
	public void setInterman (com.jianan.mis.data.domain.Interman interman) {
		this.interman = interman;
	}



	/**
	 * Return the value associated with the column: country_intent3
	 */
	public com.jianan.mis.data.domain.Country getCountryIntent3 () {
		return countryIntent3;
	}

	/**
	 * Set the value related to the column: country_intent3
	 * @param countryIntent3 the country_intent3 value
	 */
	public void setCountryIntent3 (com.jianan.mis.data.domain.Country countryIntent3) {
		this.countryIntent3 = countryIntent3;
	}




	public boolean equals (Object obj) {
		if (null == obj) return false;
		if (!(obj instanceof com.jianan.mis.data.domain.OsConsultation)) return false;
		else {
			com.jianan.mis.data.domain.OsConsultation osConsultation = (com.jianan.mis.data.domain.OsConsultation) obj;
			if (null == this.getId() || null == osConsultation.getId()) return false;
			else return (this.getId().equals(osConsultation.getId()));
		}
	}

	public int hashCode () {
		if (Integer.MIN_VALUE == this.hashCode) {
			if (null == this.getId()) return super.hashCode();
			else {
				String hashStr = this.getClass().getName() + ":" + this.getId().hashCode();
				this.hashCode = hashStr.hashCode();
			}
		}
		return this.hashCode;
	}


	public String toString () {
		return super.toString();
	}


}